using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using OneSoft.EntityCore;
using OneSoft.DataAccess;
using BySoft.Server.Common.Entity;
using BySoft.Server.Common.Schema;
using BySoft.Server.DataAccess;

namespace BySoft.Server.Business
{
	/// <summary>
	/// MdExchangerate
	/// </summary>
	public partial class MdExchangerate
	{
		#region GetByID
		/// <summary>
		/// 取得实体
		/// </summary>
		/// <param name="id">实体关键字</param>
		/// <returns>实体实例</returns>
		public static MdExchangerateEntity GetMdExchangerateByID(Int32? id)
		{
			return MdExchangerateDA.GetMdExchangerateByID(id);
		}
		#endregion

		#region Insert
		/// <summary>
		/// 插入数据
		/// </summary>
		/// <param name="objMdExchangerateEntity">实体实例</param>
		/// <returns>true 插入成功; false 插入失败</returns>
		public static bool InsertMdExchangerate(MdExchangerateEntity objMdExchangerateEntity)
		{
			if (objMdExchangerateEntity == null)
			{
				return false;
			}
			try
			{
				
				return OneSoft.DataAccess.DataAccessCommon.Insert(objMdExchangerateEntity,true);

				
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region Update
		/// <summary>
		/// 更新数据
		/// </summary>
		/// <param name="objMdExchangerateEntity">实体实例</param>
		/// <returns>true 更新成功; false 更新失败</returns>
		public static bool UpdateMdExchangerate(MdExchangerateEntity objMdExchangerateEntity)
		{
			if (objMdExchangerateEntity == null)
			{
				return false;
			}
			try
			{
				return OneSoft.DataAccess.DataAccessCommon.Update(objMdExchangerateEntity);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region Delete
		/// <summary>
		/// 删除数据
		/// </summary>
		/// <param name="objMdExchangerateEntity">实体实例</param>
		/// <returns>true 删除成功; false 删除失败</returns>
		public static bool DeleteMdExchangerate(MdExchangerateEntity objMdExchangerateEntity)
		{
			if (objMdExchangerateEntity == null)
			{
				return false;
			}
			try
			{
				return OneSoft.DataAccess.DataAccessCommon.Delete(objMdExchangerateEntity);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region GetAll
		/// <summary>
		/// 获取所有数据
		/// </summary>
		/// <returns>返回所有数据</returns>
		public static DataSet GetMdExchangerateAll()
		{
			try
			{
				return MdExchangerateDA.GetMdExchangerateAll();
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region GetDSByCondition
		/// <summary>
		/// 获取符合条件的DS
		/// </summary>
		/// <returns>返回DS</returns>
		public static DataSet GetDSByCondition(string strCondition)
		{
			try
			{
				return MdExchangerateDA.GetDSByCondition(strCondition);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

		#region GetByCondition
		/// <summary>
		/// 获取符合条件的数据实体
		/// </summary>
		/// <returns>返回数据实体</returns>
		public static List<MdExchangerateEntity> GetByCondition(string strCondition)
		{
			try
			{
				return MdExchangerateDA.GetByCondition(strCondition);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		#endregion

        public static DataTable SelectList(string Currency, int pageIndex, int pageSize, out int m_count)
        {
            return MdExchangerateDA.SelectList(Currency, pageIndex, pageSize, out m_count);
        }

        public static void Del(string strCode)
        {
            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                try
                {
                    broker.BeginTransaction();
                    ClsCommDA.Del("MD_ExchangeRate", "ExchangeRateID", strCode, broker);
                    broker.Commit();
                }
                catch
                {
                    broker.Rollback();
                    throw;
                }
            }
        }

        public static bool Update(MdExchangerateEntity entity)
        {
            bool isResult = true;
            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                try
                {
                    DataAccessCommon.Update(entity, broker);
                    broker.Commit();
                }
                catch (Exception ex)
                {
                    isResult = false;
                    broker.Rollback();
                    throw ex;
                }

            }
            return isResult;
        }
        /// <summary>
        /// 根据币别选取当前汇率
        /// </summary>
        /// <param name="currency">币别</param>
        /// <returns></returns>
        public static MdExchangerateEntity GetMaxMdExchangerateByCurrency(string currency)
        {
            return MdExchangerateDA.GetMaxMdExchangerateByCurrency(currency);
        }
    }

}
